package com.crm.miaohe.kdcloud.model;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;

import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;

public class OrderForm {
    private Boolean IsDeleteEntry;
    private String SubSystemId;
    private Boolean IsVerifyBaseDataField;
    private Boolean IsEntryBatchFill;
    private Boolean ValidateFlag;
    private Boolean NumberSearch;
    private Model Model;

    public Boolean getDeleteEntry() {
        return IsDeleteEntry;
    }

    public void setDeleteEntry(Boolean deleteEntry) {
        IsDeleteEntry = deleteEntry;
    }

    public String getSubSystemId() {
        return SubSystemId;
    }

    public void setSubSystemId(String subSystemId) {
        SubSystemId = subSystemId;
    }

    public Boolean getVerifyBaseDataField() {
        return IsVerifyBaseDataField;
    }

    public void setVerifyBaseDataField(Boolean verifyBaseDataField) {
        IsVerifyBaseDataField = verifyBaseDataField;
    }

    public Boolean getEntryBatchFill() {
        return IsEntryBatchFill;
    }

    public void setEntryBatchFill(Boolean entryBatchFill) {
        IsEntryBatchFill = entryBatchFill;
    }

    public Boolean getValidateFlag() {
        return ValidateFlag;
    }

    public void setValidateFlag(Boolean validateFlag) {
        ValidateFlag = validateFlag;
    }

    public Boolean getNumberSearch() {
        return NumberSearch;
    }

    public void setNumberSearch(Boolean numberSearch) {
        NumberSearch = numberSearch;
    }

    public Model getModel() {
        return Model;
    }

    public void setModel(Model model) {
        Model = model;
    }

@JsonPropertyOrder({"FSaleOrgId", "FDate", "FCustId", "FSalerId", "FReceiveId","FBillTypeID", "FNote","F_DLMH_DATE", "FSaleOrderFinance", "FSaleOrderEntry", "F_DLMH_Text", "F_DLMH_Assistant","F_DLMH_CRMID"})
    public static class Model {
        private NumberRecord FBillTypeID;
        private LocalDateTime FDate;
        private Date F_DLMH_DATE;//要货日期
        private NumberRecord FSaleOrgId;
        // 销售部门
        private NumberRecord FSaleDeptId;
        private NumberRecord FCustId;
        private NumberRecord FReceiveId;
        private NumberRecord FSalerId;
        private SaleOrderFinance FSaleOrderFinance;
        private List<SaleOrderEntry> FSaleOrderEntry;
        private String FNote;//订单备注
        private String F_DLMH_Text;//订单送货路线
        private NumberRecord F_DLMH_Assistant;//送货路线code

        //1027mjy
        private String F_DLMH_CRMID;//CRM订单单号

        @JsonProperty("F_DLMH_Assistant")
        public NumberRecord getF_DLMH_Assistant() {
            return F_DLMH_Assistant;
        }
        public void setF_DLMH_Assistant(NumberRecord f_DLMH_Assistant) {
            F_DLMH_Assistant = f_DLMH_Assistant;
        }

        //1027mjy
        @JsonProperty("F_DLMH_CRMID")
        public String getF_DLMH_CRMID() {
            return F_DLMH_CRMID;
        }
        public void setF_DLMH_CRMID(String f_DLMH_CRMID) {
            this.F_DLMH_CRMID = f_DLMH_CRMID;
        }


    @JsonProperty("F_DLMH_Text")
        public String getF_DLMH_Text() {
            return F_DLMH_Text;
        }
        public void setF_DLMH_Text(String f_DLMH_Text) {
            F_DLMH_Text = f_DLMH_Text;
        }

        @JsonProperty("FNote")
        public String getFNote() {
            return FNote;
        }
        public void setFNote(String FNote) {
        this.FNote = FNote;
    }

        @JsonProperty("F_DLMH_DATE")
        public Date getF_DLMH_DATE() {
            return F_DLMH_DATE;
        }
        public void setF_DLMH_DATE(Date f_DLMH_DATE) {
            F_DLMH_DATE = f_DLMH_DATE;
        }

        @JsonProperty("FBillTypeID")
        public NumberRecord getFBillTypeID() {
            return FBillTypeID;
        }
        public void setFBillTypeID(NumberRecord FBillTypeID) {
            this.FBillTypeID = FBillTypeID;
        }

        @JsonProperty("FDate")
        public LocalDateTime getFDate() {
            return FDate;
        }
        public void setFDate(LocalDateTime FDate) {
            this.FDate = FDate;
        }

        @JsonProperty("FSaleOrgId")
        public NumberRecord getFSaleOrgId() {
            return FSaleOrgId;
        }
        public void setFSaleOrgId(NumberRecord FSaleOrgId) {
            this.FSaleOrgId = FSaleOrgId;
        }

        @JsonProperty("FSaleDeptId")
        public NumberRecord getFSaleDeptId() {
            return FSaleDeptId;
        }
        public void setFSaleDeptId(NumberRecord FSaleDeptId) {
            this.FSaleDeptId = FSaleDeptId;
        }
        @JsonProperty("FCustId")
        public NumberRecord getFCustId() {
            return FCustId;
        }
        public void setFCustId(NumberRecord FCustId) {
            this.FCustId = FCustId;
        }

        @JsonProperty("FReceiveId")
        public NumberRecord getFReceiveId() {
            return FReceiveId;
        }
        public void setFReceiveId(NumberRecord FReceiveId) {
            this.FReceiveId = FReceiveId;
        }

        @JsonProperty("FSalerId")
        public NumberRecord getFSalerId() {
            return FSalerId;
        }
        public void setFSalerId(NumberRecord FSalerId) {
            this.FSalerId = FSalerId;
        }

        @JsonProperty("FSaleOrderFinance")
        public SaleOrderFinance getFSaleOrderFinance() {
            return FSaleOrderFinance;
        }
        public void setFSaleOrderFinance(SaleOrderFinance FSaleOrderFinance) {
            this.FSaleOrderFinance = FSaleOrderFinance;
        }

        @JsonProperty("FSaleOrderEntry")
        public List<SaleOrderEntry> getFSaleOrderEntry() {
            return FSaleOrderEntry;
        }
        public void setFSaleOrderEntry(List<SaleOrderEntry> FSaleOrderEntry) {
            this.FSaleOrderEntry = FSaleOrderEntry;
        }

        @JsonPropertyOrder({"FPriceUnitId", "FStockUnitID", "FUnitID", "F_DLMH_Base", "FSettleOrgIds", "FROWTYPE","FMaterialId", "FQty", "FTaxPrice", "FDeliveryDate", "F_DLMH_Date1","F_DLMH_Remarks","FStockOrgId","FReserveType","FSupplyOrgId"})
        public static class SaleOrderEntry {
            private NumberRecord FUnitID; // 销售单位
            private NumberRecord F_DLMH_Base; // 客户编码
            private NumberRecord FMaterialId;
            private Double FQty; // 销售数量
            private Double FTaxPrice; // 总计价格
            private NumberRecord FPriceUnitId; // 计价单位
            private Date FDeliveryDate;
            private Date F_DLMH_Date1;
            private String F_DLMH_Remarks;
            //private String F_DLMH_BaseProperty2;
            private NumberRecord FStockOrgId;//库存组织
            private NumberRecord FSettleOrgIds; // 结算组织
            private NumberRecord FSupplyOrgId; // 供货组织
            private String FReserveType; // 预留类型
            private NumberRecord FStockUnitID; // 库存单位
            private String FROWTYPE; // 套件父项
            private String FIsFree;//是否赠品

            @JsonProperty("FSupplyOrgId")
            public NumberRecord getFSupplyOrgId() {
                return FSupplyOrgId;
            }
            public void setFSupplyOrgId(NumberRecord FSupplyOrgId) {
                this.FSupplyOrgId = FSupplyOrgId;
            }

            @JsonProperty("FROWTYPE")
            public String getFROWTYPE() {
                return FROWTYPE;
            }
            public void setFROWTYPE(String FROWTYPE) {
                this.FROWTYPE = FROWTYPE;
            }

            @JsonProperty("F_DLMH_Remarks")//套餐明细
            public String getF_DLMH_Remarks() {
                return F_DLMH_Remarks;
            }
            public void setF_DLMH_Remarks(String f_DLMH_Remarks) {
                F_DLMH_Remarks = f_DLMH_Remarks;
            }

            /*@JsonProperty("F_DLMH_BaseProperty2")//送货路线明细
            public String getF_DLMH_BaseProperty2() {
                return F_DLMH_BaseProperty2;
            }

            public void setF_DLMH_BaseProperty2(String f_DLMH_BaseProperty2) {
                F_DLMH_BaseProperty2 = f_DLMH_BaseProperty2;
            }*/

            @JsonProperty("F_DLMH_Date1")//订单日期
            public Date getF_DLMH_Date1() {
                return F_DLMH_Date1;
            }
            public void setF_DLMH_Date1(Date f_DLMH_Date1) {
                F_DLMH_Date1 = f_DLMH_Date1;
            }

            @JsonProperty("FStockOrgId") //供货组织
            public NumberRecord getFStockOrgId() {
                return FStockOrgId;
            }
            public void setFStockOrgId(NumberRecord FStockOrgId) {
                this.FStockOrgId = FStockOrgId;
            }

            @JsonProperty("FUnitID") // 销售单位
            public NumberRecord getFUnitID() {
                return FUnitID;
            }
            public void setFUnitID(NumberRecord FUnitID) {
                this.FUnitID = FUnitID;
            }

            @JsonProperty("FIsFree") // 是否赠品
            public String getFIsFree() {
                return FIsFree;
            }
            public void setFIsFree(String FIsFree) {
                this.FIsFree = FIsFree;
            }

            @JsonProperty("F_DLMH_Base") // 客户编码
            public NumberRecord getF_DLMH_Base() {
                return F_DLMH_Base;
            }
            public void setF_DLMH_Base(NumberRecord f_DLMH_Base) {
                F_DLMH_Base = f_DLMH_Base;
            }

            @JsonProperty("FMaterialId")
            public NumberRecord getFMaterialId() {
                return FMaterialId;
            }
            public void setFMaterialId(NumberRecord FMaterialId) {
                this.FMaterialId = FMaterialId;
            }

            @JsonProperty("FQty") // 销售数量
            public Double getFQty() {
                return FQty;
            }
            public void setFQty(Double FQty) {
                this.FQty = FQty;
            }

            @JsonProperty("FTaxPrice") // 总计价格
            public Double getFTaxPrice() {
                return FTaxPrice;
            }
            public void setFTaxPrice(Double FTaxPrice) {
                this.FTaxPrice = FTaxPrice;
            }

            @JsonProperty("FPriceUnitId") // 计价单位
            public NumberRecord getFPriceUnitId() {
                return FPriceUnitId;
            }
            public void setFPriceUnitId(NumberRecord FPriceUnitId) {
                this.FPriceUnitId = FPriceUnitId;
            }

            @JsonProperty("FDeliveryDate")//要货日期
            public Date getFDeliveryDate() {
                return FDeliveryDate;
            }
            public void setFDeliveryDate(Date FDeliveryDate) {
                this.FDeliveryDate = FDeliveryDate;
            }

            @JsonProperty("FSettleOrgIds") // 结算组织
            public NumberRecord getFSettleOrgIds() {
                return FSettleOrgIds;
            }
            public void setFSettleOrgIds(NumberRecord FSettleOrgIds) {
                this.FSettleOrgIds = FSettleOrgIds;
            }

            @JsonProperty("FReserveType") // 预留类型
            public String getFReserveType() {
                return FReserveType;
            }
            public void setFReserveType(String FReserveType) {
                this.FReserveType = FReserveType;
            }

            @JsonProperty("FStockUnitID") // 库存单位
            public NumberRecord getFStockUnitID() {
                return FStockUnitID;
            }
            public void setFStockUnitID(NumberRecord FStockUnitID) {
                this.FStockUnitID = FStockUnitID;
            }
        }

        public static class SaleOrderFinance {
            private NumberRecord FSettleCurrId; // 结算币别
            private Boolean FIsPriceExcludeTax;
            private Boolean FIsIncludedTax;
            private NumberRecord FExchangeTypeId;
            private Boolean FOverOrgTransDirect;
            private NumberRecord FRecConditionId;
            public NumberRecord getFSettleCurrId() {
                return FSettleCurrId;
            }

            public void setFSettleCurrId(NumberRecord FSettleCurrId) {
                this.FSettleCurrId = FSettleCurrId;
            }

            public Boolean getFIsPriceExcludeTax() {
                return FIsPriceExcludeTax;
            }

            public void setFIsPriceExcludeTax(Boolean FIsPriceExcludeTax) {
                this.FIsPriceExcludeTax = FIsPriceExcludeTax;
            }

            public Boolean getFIsIncludedTax() {
                return FIsIncludedTax;
            }

            public void setFIsIncludedTax(Boolean FIsIncludedTax) {
                this.FIsIncludedTax = FIsIncludedTax;
            }

            public NumberRecord getFRecConditionId() {
                return FRecConditionId;
            }

            public void setFFRecConditionId(NumberRecord FRecConditionId) {
                this.FRecConditionId = FRecConditionId;
            }

            public NumberRecord getFExchangeTypeId() {
                return FExchangeTypeId;
            }

            public void setFExchangeTypeId(NumberRecord FExchangeTypeId) {
                this.FExchangeTypeId = FExchangeTypeId;
            }

            public Boolean getFOverOrgTransDirect() {
                return FOverOrgTransDirect;
            }

            public void setFOverOrgTransDirect(Boolean FOverOrgTransDirect) {
                this.FOverOrgTransDirect = FOverOrgTransDirect;
            }
        }
    }
}
